      1  import java.io.IOException;

      2  import java.util.Scanner;

      3

      4  /**

      5     This program demonstrates random access. You can access

      6     existing accounts and deposit money, or create new accounts.

      7     The accounts are saved in a random access file.

      8  */

      9  public class BankSimulator

     10  {

     11     public static void main(String[] args) throws IOException

     12     {

     13        Scanner in = new Scanner(System.in);

     14        BankData data = new BankData();

     15        try

     16        {

     17           data.open("bank.dat");

     18

     19           boolean done = false;

     20           while (!done)

     21           {

     22              System.out.print("Account number: ");

     23              int accountNumber = in.nextInt();

     24              System.out.print("Amount to deposit: ");

     25              double amount = in.nextDouble();

     26

     27              int position = data.find(accountNumber);

     28              BankAccount account;

     29              if (position >= 0)

     30              {

     31                 account = data.read(position);

     32                 account.deposit(amount);

     33                 System.out.println("New balance: " + account.getBalance());

     34              }

     35              else // Add account

     36              {

     37                 account = new BankAccount(accountNumber, amount);

     38                 position = data.size();

     39                 System.out.println("Adding new account.");

     40              }

     41              data.write(position, account);

     42

     43              System.out.print("Done? (Y/N) ");

     44              String input = in.next();

     45              if (input.equalsIgnoreCase("Y")) { done = true; }

     46           }

     47        }

     48        finally

     49        {

     50           data.close();

     51        }

     52     }

     53  }

     54

     55

     56

     57

     58

     59

     60

     61

     62

     63

     64

     65